import md5 from './md5.js';
// import api from './api.js';
let tool = {

	/**
	 * 获取当前页面地址
	 * @param {Object} flag
	 */
	getCurrPagePath: function(flag) {
		// #ifdef H5
		//获取URL
		let url = location.href;
		if(!flag){
			url=url.replace("#","");
			if(url.indexOf("?") !== -1){
				url=url.substr(0,url.indexOf("?")-1);
			}
			return url;
		}

		//声明参数字典
		let requestDic = {};
		//确定URL中包含 ？
		if (url.indexOf("?") !== -1){
			//返回 ？ 后面的字符串
			let str = url.substr(url.indexOf("?") + 1);
			//通过 & 符号分割字符串，获取参数数组
			let strArray = str.split("&");
			//遍历参数数组
			for (let i = 0; i < strArray.length; i++){
				//把遍历到的每一个元素再以 = 分割，分割后第0为作为key，第一位作为value 存放到字典中
				requestDic[strArray[i].split("=")[0]] = decodeURI(strArray[i].split("=")[1]);
			}
		}

		// #endif

		flag = typeof flag != "boolean" ? false : flag;
		let pages = getCurrentPages();
		if (!flag) {
			return pages[len - 1].route;
		}
		let len = pages.length;
		let curParam = pages[len - 1].options; //获取当前页面参数
		let param = [];
		for (let key in curParam) { //获取key=value键值对格式数组
			param.push(key + '=' + curParam[key]);
		}

		let _url = {}; //除去第一个参数拼接后面参数
		param.forEach((item, i) => {
			if (i != 0) { //拼接&符号，由于第一组前拼接的是？所有第一组需要单独处理
				_url [i]= item;
			}
		})
		return  _url
	},

	 formatDate(params ) {
	  let defalutParams = {
		date: new Date(),
		formatStr: 'yyyy-MM-dd HH:mm:ss'
	  }
	  params = { ...defalutParams, ...params };
	  let date = params.date;
	  let formatStr = params.formatStr;
	  // 传入日期字符串 - 转成时间戳 - 转成标准时间
	  let timeStamp = new Date(date).getTime();
	  date = new Date(timeStamp);
	  formatStr = formatStr.replace(new RegExp('yyyy'), `${date.getFullYear()}`);
	  const month = date.getMonth() + 1;
	  formatStr = formatStr.replace(new RegExp('MM'), `${month > 9 ? month : '0' + month}`);
	  const day = date.getDate();
	  formatStr = formatStr.replace(new RegExp('dd'), `${day > 9 ? day : '0' + day}`);
	  const hour = date.getHours();
	  formatStr = formatStr.replace(new RegExp('HH'), `${hour > 9 ? hour : '0' + hour}`);
	  const min = date.getMinutes();
	  formatStr = formatStr.replace(new RegExp('mm'), `${min > 9 ? min : '0' + min}`);
	  const sec = date.getSeconds();
	  formatStr = formatStr.replace(new RegExp('ss'), `${sec > 9 ? sec : '0' + sec}`);
	  return formatStr;
	},

	/**
	 * 组装时间字符串
	 * @param {Object} time
	 * @param {Object} flag
	 */
	timeDiffStr(time, flag, type) {

		if (typeof flag != 'undefined' && flag == true) {

			time = this.timeDiff(this.getCurrentDate(), time);
		}

		let str = '';
		if (typeof type != 'undefined' && type == true) {

			if (time.day > 0) {
				str = time.day +
					'天' + (time.hour < 10 && time.hour >= 1 ? '0' + time.hour : time.hour) +
					'时' + (time.minute < 10 && time.minute >= 1 ? '0' + time.minute : time.minute) +
					'分' + (time.seconds < 10 && time.seconds >= 1 ? '0' + time.seconds : time.seconds) + '秒';
			} else if (time.hour > 0) {
				str = time.hour +
					'时' + (time.minute < 10 && time.minute >= 1 ? '0' + time.minute : time.minute) +
					'分' + (time.seconds < 10 && time.seconds >= 1 ? '0' + time.seconds : time.seconds) + '秒';
			} else if (time.minute > 0) {
				str = time.minute +
					'分' + (time.seconds < 10 && time.seconds >= 1 ? '0' + time.seconds : time.seconds) + '秒';
			} else if (time.seconds > 0) {
				str = time.seconds + '秒';
			}
		} else {
			if (time.day > 0) {
				str = time.day + '天' + time.hour + '时' + time.minute + '分' + time.seconds + '秒';
			} else if (time.hour > 0) {
				str = time.hour + '时' + time.minute + '分' + time.seconds + '秒';
			} else if (time.minute > 0) {
				str = time.minute + '分' + time.seconds + '秒';
			} else if (time.seconds > 0) {
				str = time.seconds + '秒';
			}
		}

		return str;
	},

	/**
	 * 获取当前时间
	 */
	getCurrentDate() {
		var timeStr = '-';
		var curDate = new Date();
		var curYear = curDate.getFullYear(); //获取完整的年份(4位,1970-????)
		var curMonth = curDate.getMonth() + 1; //获取当前月份(0-11,0代表1月)
		var curDay = curDate.getDate(); //获取当前日(1-31)
		var curWeekDay = curDate.getDay(); //获取当前星期X(0-6,0代表星期天)
		var curHour = curDate.getHours(); //获取当前小时数(0-23)
		var curMinute = curDate.getMinutes(); // 获取当前分钟数(0-59)
		var curSec = curDate.getSeconds(); //获取当前秒数(0-59)
		var Current = curYear + timeStr + curMonth + timeStr + curDay + ' ' + curHour + ':' + curMinute + ':' +
			curSec;
		// this.datetime=Current;
		return Current;
	},

	/**
	 * 获取导航栏高度
	 */
	getBarHeadHeight: function(callback) {
		let customBarHeight = 0;
		uni.getSystemInfo({
			success: function(e) {
				// #ifndef MP
				if (e.platform == 'android') {
					customBarHeight = e.statusBarHeight + 50;
				} else {
					customBarHeight = e.statusBarHeight + 45;
				};
				// #endif

				// #ifdef MP-WEIXIN
				// Vue.prototype.StatusBar = e.statusBarHeight;
				let custom = wx.getMenuButtonBoundingClientRect();
				customBarHeight = custom.bottom + custom.top - e.statusBarHeight;
				// #endif

				// #ifdef MP-ALIPAY
				customBarHeight = e.statusBarHeight + e.titleBarHeight;
				// #endif
				callback(customBarHeight, e.statusBarHeight);
			}
		});
	},

	/**
	 * 保存网络图片到本地
	 * @param {Object} img
	 * @param {Object} callback
	 */
	saveHttpImage: function(img, callback) {
		//下载图片到本地
		uni.downloadFile({
			url: img,
			success: res => {
				//判断是否下载成功
				if (res.statusCode === 200) {
					//保存图片到本地
					uni.saveImageToPhotosAlbum({
						filePath: res.tempFilePath,
						success: function() {
							if (typeof callback == "function") {
								callback(res.tempFilePath);
							}
							tool.showToast('保存成功');
						},
						fail() {
							tool.showToast('保存失败');
						}
					});
				}
			},
			fail() {
				tool.showToast('保存失败');
			}
		});
	},

	/**
	 * 验证邮箱地址
	 * @param {Object} email 邮箱地址
	 */
	checkEmail: function(email) {
		let reg =
		/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
		return reg.test(email);
	},

	/**
	 * 验证正整数
	 * @param {Object} number
	 */
	checkInt: function(number) {
		return /^\+?[1-9][0-9]*$/.test(number);
	},

	/**
	 * 验证手机号码
	 * @param {Object} mobile 手机号码
	 */
	checkMobile: function(mobile) {
		let reg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
		return reg.test(mobile);
	},

	/**
	 * 验证身份证号码
	 * @param {Object} idCard 身份证号码
	 */
	checkIdCard: function(idCard) {
		//15位和18位身份证号码的正则表达式
		var regIdCard =
			/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
		//如果通过该验证，说明身份证格式正确，但准确性还需计算
		if (!regIdCard.test(idCard)) {
			return false;
		}
		if (idCard.length != 18) {
			return false;
		}
		var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //将前17位加权因子保存在数组里
		var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2); //这是除以11后，可能产生的11位余数、验证码，也保存成数组
		var idCardWiSum = 0; //用来保存前17位各自乖以加权因子后的总和
		for (var i = 0; i < 17; i++) {
			idCardWiSum += idCard.substring(i, i + 1) * idCardWi[i];
		}
		var idCardMod = idCardWiSum % 11; //计算出校验码所在数组的位置
		var idCardLast = idCard.substring(17); //得到最后一位身份证号码
		//如果等于2，则说明校验码是10，身份证号码最后一位应该是X
		if (idCardMod == 2) {
			if (idCardLast == "X" || idCardLast == "x") {
				return true;
			}
			return false;
		}
		//用计算出的验证码与最后一位身份证号码匹配，如果一致，说明通过，否则是无效的身份证号码
		if (idCardLast == idCardY[idCardMod]) {
			return true;
		}
		return false;
	},

	/**
	 * 验证银行卡号
	 * @param {Object} bankno
	 */
	luhnCheck: function(bankno) {
		var lastNum = bankno.substr(bankno.length - 1, 1); //取出最后一位（与luhn进行比较）
		var first15Num = bankno.substr(0, bankno.length - 1); //前15或18位
		var newArr = new Array();
		for (var i = first15Num.length - 1; i > -1; i--) { //前15或18位倒序存进数组
			newArr.push(first15Num.substr(i, 1));
		}
		var arrJiShu = new Array(); //奇数位*2的积 <9
		var arrJiShu2 = new Array(); //奇数位*2的积 >9
		var arrOuShu = new Array(); //偶数位数组
		for (var j = 0; j < newArr.length; j++) {
			if ((j + 1) % 2 == 1) { //奇数位
				if (parseInt(newArr[j]) * 2 < 9) arrJiShu.push(parseInt(newArr[j]) * 2);
				else arrJiShu2.push(parseInt(newArr[j]) * 2);
			} else //偶数位
				arrOuShu.push(newArr[j]);
		}

		var jishu_child1 = new Array(); //奇数位*2 >9 的分割之后的数组个位数
		var jishu_child2 = new Array(); //奇数位*2 >9 的分割之后的数组十位数
		for (var h = 0; h < arrJiShu2.length; h++) {
			jishu_child1.push(parseInt(arrJiShu2[h]) % 10);
			jishu_child2.push(parseInt(arrJiShu2[h]) / 10);
		}

		var sumJiShu = 0; //奇数位*2 < 9 的数组之和
		var sumOuShu = 0; //偶数位数组之和
		var sumJiShuChild1 = 0; //奇数位*2 >9 的分割之后的数组个位数之和
		var sumJiShuChild2 = 0; //奇数位*2 >9 的分割之后的数组十位数之和
		var sumTotal = 0;
		for (var m = 0; m < arrJiShu.length; m++) {
			sumJiShu = sumJiShu + parseInt(arrJiShu[m]);
		}

		for (var n = 0; n < arrOuShu.length; n++) {
			sumOuShu = sumOuShu + parseInt(arrOuShu[n]);
		}

		for (var p = 0; p < jishu_child1.length; p++) {
			sumJiShuChild1 = sumJiShuChild1 + parseInt(jishu_child1[p]);
			sumJiShuChild2 = sumJiShuChild2 + parseInt(jishu_child2[p]);
		}
		//计算总和
		sumTotal = parseInt(sumJiShu) + parseInt(sumOuShu) + parseInt(sumJiShuChild1) + parseInt(
		sumJiShuChild2);

		//计算luhn值
		var k = parseInt(sumTotal) % 10 == 0 ? 10 : parseInt(sumTotal) % 10;
		var luhn = 10 - k;

		return lastNum == luhn;
	},

	/**
	 * 设置桌面角标数字,0清除
	 * @param {Number} num
	 */
	setBadgeNumber: function(num) {
		// #ifdef APP-PLUS
		num = typeof num != "number" ? 0 : num;
		plus.runtime.setBadgeNumber(num);
		// #endif
	},

	/**
	 * 简洁提示
	 * @param {Object} msg 提示文字
	 * @param {Object} mask 是否穿透
	 * @param {Object} duration 显示时长(毫秒)
	 * @param {Object} icon 图标
	 * @param {Object} image 自定义图片图标
	 * @param {Object} callback 根据时间执行后回调函数
	 */
	showToast: function(msg, mask, duration, icon, image, callback) {
		mask = typeof mask != 'boolean' ? false : mask;
		duration = typeof duration != 'number' ? 2200 : duration;
		icon = typeof icon != 'string' ? 'none' : icon;
		image = typeof image != 'string' ? '' : image;
		uni.showToast({
			mask: mask,
			title: msg,
			duration: duration,
			icon: icon,
			image: image
		});
		setTimeout(function() {
			if (typeof callback == "function") {
				callback();
			}
		}, duration);
	},

	/**
	 * 显示加载
	 * @param {Object} text 加载文字
	 * @param {Object} mask 是否可穿透
	 */
	showLoading: function(text, mask) {
		text = typeof text != "string" ? '请求中' : text;
		mask = typeof mask != "boolean" ? true : false;
		uni.showLoading({
			title: text,
			mask: mask
		});
	},

	/**
	 * 关闭加载
	 */
	hideLoading: function() {
		uni.hideLoading();
	},

	/**
	 * 设置粘贴板数据
	 * @param {String} text 要设置的字符串
	 * 如果未设置参数，则清空数据
	 */
	setClipboardText: function(text, success, fail) {
		
		try {
			
			
			// var os = plus.os.name;
			// text = text || '';
			
			// #ifdef APP-PLUS
			uni.setClipboardData({
				data: text,
				success:()=>{
					tool.showToast('复制成功，快去使用吧！');
				},
				fail:(err)=>{
					tool.showToast(' 复制失败！',err);
				}
			});
			// #endif
			
			
			
			
			// #ifdef H5
			console.log("H5"+text)
			if (document.queryCommandSupported('copy')) {
				let textarea = document.createElement("textarea")
				textarea.value = text
				textarea.readOnly = "readOnly"
				document.body.appendChild(textarea)
				textarea.select() // 选中文本内容
				textarea.setSelectionRange(0, text.length)
				let result = document.execCommand("copy")
				textarea.remove()
				tool.showToast('复制成功，快去分享吧！');
			
			} else {
				tool.showToast('您的浏览器不支持复制');
			}
			// #endif 
			
		} catch (e) {
			// tool.showToast('复制成功，快去使用吧！');
			console.log("H5"+e)
			if (typeof success == "function") {
				success(fail);
			}
		}
	},

	/***
	 *获取剪切板内容
	 **/
	getClipboardText: function() {
		try {
			var os = plus.os.name;
			if ('iOS' == os) {
				var pasteboard = plus.ios.invoke('UIPasteboard', 'generalPasteboard');
				return plus.ios.invoke(pasteboard, 'valueForPasteboardType:', 'public.utf8-plain-text')
			} else {
				var main = plus.android.runtimeMainActivity();
				var clip = main.getSystemService('clipboard');
				return plus.android.invoke(clip, 'getText');
			}
		} catch (e) {
			console.error('error @getClipboardText!!');
			return '';
		}
	},

	/**
	 * 跳转
	 * @param {Object} type
	 * @param {Object} uri
	 * @param {Object} callback
	 * @param {Object} animationType
	 */
	jump: function(type, uri, callback) {
		let animationType = 'pop-in';
		if (type == 4) {
			animationType = 'pop-out';
		}
		uri = typeof uri == 'number' ? uri : '/pages/' + uri;
		callback = callback || function() {};

		switch (type) {
			//关闭当前页面，跳转到应用内的某个页面
			case 1:
				uni.redirectTo({
					url: uri,
					success: function() {
						callback?callback(1):null;
					},
					fail: function() {
						callback?callback(2):null;
					}
				});
				break;
				//关闭所有页面，打开到应用内的某个页面
			case 2:
				uni.reLaunch({
					url: uri,
					success: function() {
						callback?callback(1):null;
					},
					fail: function() {
						callback?callback(2):null;
					}
				});
				break;
				//跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面,不能带参数
			case 3:
				uni.switchTab({
					url: uri,
					success: function() {
						callback?callback(1):null;
					},
					fail: function() {
						callback?callback(2):null;
					}
				});
				break;
				//返回上一页或多层级页面
			case 4:
				console.log(uri)
				uni.navigateBack({
					delta: uri,
					animationType: animationType,
					animationDuration: 330
				});
				callback?callback(1):null;
				break;
				//保留当前页面，跳转到应用内的某个页面
			default:
				uni.navigateTo({
					url: uri,
					animationType: animationType,
					animationDuration: 330,
					success: function() {
						callback?callback(1):null;
					},
					fail: function() {
						callback?callback(2):null;
					}
				});
				break;
		}
	},

	httpCodeLogin(code){
		let login=[1002,1003,1004,1007,1006,1008];
		return login.indexOf(code)!=-1;
	},

	/**
	 * 清除token
	 * @param {Object} callback
	 */
	clearToken: function(callback) {
		uni.removeStorage({
			key: 'x-api-token',
			success: function(res) {
				uni.setStorageSync('isLogin', false);
				if (typeof callback == "function") {
					callback();
				}
			}
		});
	}

};

/**
 * 验证码倒计时处理
 */
let countdown = {
	/**
	 * 倒计时通用处理方法
	 * @param {Object} _this 当前页面对象
	 */
	countdown: function(_this) {
		let inter = setInterval(function() {
			if (_this.codeTime <= 0) {
				clearInterval(inter);
				return false;
			}
			_this.codeTime -= 1;
		}, 1000);
	},

	/**
	 * 通用缓存验证码时间方法
	 * @param {Object} _this 当前页面对象
	 * @param {Object} key 缓存key
	 */
	storageCountdown: function(_this, key) {
		//判断是否具备缓存条件
		if (_this.mobile == '' || _this.codeTime < 1 || !tool.checkMobile(_this.mobile)) {
			//清除缓存
			uni.removeStorage({
				key: key
			});
			return false;
		}
		//缓存code时间
		let codeTime = {
			time: (new Date()).getTime(),
			surplus: _this.codeTime,
			mobile: _this.mobile
		};
		uni.setStorage({
			key: key,
			data: codeTime
		});
	},

	/**
	 * 页面显示时处理倒计时
	 * @param {Object} _this 当前页面对象
	 * @param {Object} key 缓存key
	 */
	showCountdown: function(_this, key, ) {
		let time = (new Date()).getTime();
		let obj = this;
		//获取缓存的验证码时间
		uni.getStorage({
			key: key,
			success: function(res) {
				res = res.data;
				//计算间隔时间(秒)
				let diff = parseInt((time - res.time) / 1000);
				//计算剩余倒计时时间
				let surplus = res.surplus - diff;
				//如果间隔时间超出了剩余时间或者没有倒计时时间了则不处理并且清除这个缓存
				if (diff > res.surplus || surplus < 1) {
					//清除缓存
					uni.removeStorage({
						key: key
					});
					return false;
				}
				//开始倒计时
				_this.codeTime = surplus;
				_this.mobile = res.mobile;
				obj.countdown(_this);
			}
		});
	}
};

let checkForm = {

	/**
	 * 检查手机号码
	 * @param {Object} phone
	 */
	checkMobile: function(phone) {
		if (phone == '') {
			tool.showToast('请输入手机号码');
			return false;
		}
		if (!tool.checkMobile(phone)) {
			tool.showToast('手机号码错误');
			return false;
		}
		return true;
	},

	/**
	 * 登录表单验证
	 * @param {Object} data
	 */
	checkLogin: function(data) {
		if (typeof data != 'object') {
			return false;
		}
		if (!this.checkMobile(data.mobile)) {
			return false;
		}
		if (data.login_pwd == '') {
			tool.showToast('请输入登录密码');
			return false;
		}
		if (data.login_pwd.length < 6 || data.login_pwd.length > 18) {
			tool.showToast('密码错误');
			return false;
		}
		return true;
	},

	/**
	 * 验证修改登录密码
	 * @param {Object} data
	 */
	checkSetPassword: function(data) {
		if (!data.login_pwd || data.login_pwd == '') {
			tool.showToast('请输入原密码');
			return false;
		}
		if (!data.new_login_pwd || data.new_login_pwd == '') {
			tool.showToast('请输入新密码');
			return false;
		}
		if (data.new_login_pwd != data.new_password2) {
			tool.showToast('两次密码输入不一致');
			return false;
		}
		if (data.login_pwd.length < 6 || data.login_pwd.length > 18) {
			tool.showToast('原密码长度为6～18位');
			return false;
		}
		if (data.new_login_pwd.length < 6 || data.new_login_pwd.length > 18) {
			tool.showToast('新密码长度为6～18位');
			return false;
		}
		if (data.login_pwd == data.new_login_pwd) {
			tool.showToast('新密码不能和原密码相同');
			return false;
		}
		return true;
	},

	/**
	 * 验证修改支付密码
	 * @param {Object} data
	 */
	checkSetPayPassword: function(data, isSet) {
		isSet = typeof isSet == "boolean" ? isSet : false;
		if (isSet) {
			if (!data.pay_pwd || data.pay_pwd == '') {
				tool.showToast('请输入原支付密码');
				return false;
			}
			if (data.pay_pwd.length != 6) {
				tool.showToast('原支付密码长度为6位数字');
				return false;
			}
			if (data.pay_pwd == data.new_pay_pwd) {
				tool.showToast('新支付密码不能和原支付密码相同');
				return false;
			}
		}
		if (!data.new_pay_pwd || data.new_pay_pwd == '') {
			tool.showToast(isSet ? '请输入新支付密码' : '请输入支付密码');
			return false;
		}
		if (data.new_pay_pwd != data.new_pay_pwd2) {
			tool.showToast('两次密码输入不一致');
			return false;
		}
		if (data.new_pay_pwd.length != 6) {
			tool.showToast(isSet ? '新支付密码长度为6位数字' : '支付密码长度为6位数字');
			return false;
		}
		return true;
	},

	/**
	 * 找回密码表单验证
	 * @param {Object} data
	 */
	checkFind: function(data) {
		if (typeof data != 'object') {
			return false;
		}
		if (!this.checkMobile(data.mobile)) {
			tool.showToast('手机号码输入错误');
			return false;
		}
		if (data.code == '') {
			tool.showToast('请输入验证码');
			return false;
		}
		if (data.code.length != 6) {
			tool.showToast('验证码错误');
			return false;
		}
		if (data.login_pwd == '') {
			tool.showToast('请输入登录密码');
			return false;
		}
		if (data.login_pwd.length < 6 || data.login_pwd.length > 18) {
			tool.showToast('密码长度为6～18位');
			return false;
		}
		return true;
	},

	/**
	 * 注册表单验证
	 * @param {Object} data
	 */
	checkRegister: function(data) {
		if (typeof data != 'object') {
			return false;
		}
		if (!this.checkMobile(data.mobile)) {
			return false;
		}
		if (data.code == '') {
			tool.showToast('请输入验证码');
			return false;
		}
		if (data.code.length != 6) {
			tool.showToast('验证码错误');
			return false;
		}
		if (data.login_pwd == '') {
			tool.showToast('请输入登录密码');
			return false;
		}
		if (data.login_pwd.length < 6 || data.login_pwd.length > 18) {
			tool.showToast('密码长度6～18位');
			return false;
		}
		if (data.login_pwd != data.login_pwd_confirmed) {
			tool.showToast('两次密码输入不一致');
			return false;
		}
		//判断是否有邀请人
		if (data.is_recommend == 1) {
			if (typeof data.invite_code != 'string' || data.invite_code == '') {
				tool.showToast('请输入邀请码');
				return false;
			}
			if (data.invite_code.length != 5) {
				tool.showToast('邀请码输入错误');
				return false;
			}
		}
		return true;
	},
	/**
	 * 编辑收货地址验证
	 * @param {Object} data
	 */
	checkAddress: function(data) {
		if (typeof data != 'object') {
			return false;
		}
		if (!data.take_name || data.take_name == '') {
			tool.showToast('请输入联系人姓名');
			return false;
		}
		if (!data.mobile || data.mobile == '') {
			tool.showToast('请输入联系人电话号码');
			return false;
		}
		if (!this.checkMobile(data.mobile)) {
			tool.showToast('联系人电话号码错误');
			return false;
		}
		if (!data.province_id || data.province_id == '') {
			tool.showToast('请选择省份');
			return false;
		}
		if (!data.city_id || data.city_id == '') {
			tool.showToast('请选择城市');
			return false;
		}
		if (!data.district_id || data.district_id == '') {
			tool.showToast('请选择区县');
			return false;
		}
		if (data.address == '') {
			tool.showToast('请输入详细地址');
			return false;
		}
		return true;
	},

	/**
	 * 用户银行卡编辑验证
	 * @param {Object} data
	 */
	checkEditBank(data) {
		if (!data.bank_id || data.bank_id < 1) {
			tool.showToast('请选择开户行');
			return false;
		}
		if (data.account_address == '') {
			tool.showToast('请输入开户地点');
			return false;
		}
		if (data.full_name == '') {
			tool.showToast('请输入开户行全称');
			return false;
		}
		if (data.card_no == '') {
			tool.showToast('请输入银行卡号');
			return false;
		}
		if (!tool.luhnCheck(data.card_no)) {
			tool.showToast('银行卡号错误');
			return false;
		}
		if (data.cardholder_name == '') {
			tool.showToast('请输入持卡人姓名');
			return false;
		}
		if (data.card_id == '') {
			tool.showToast('请输入身份证号');
			return false;
		}
		if (!tool.checkIdCard(data.card_id)) {
			tool.showToast('身份证号错误');
			return false;
		}
		return true;
	}
};



export default {
	countdown,
	tool,
	checkForm,
	md5
}
